// 头文件保护宏，防止重复包含。
// _CONSOLE_H_ 是一个常用的宏名约定，通常基于文件名。
#ifndef  _CONSOLE_H_   // 如果 _CONSOLE_H_ 还没有被定义...
#define  _CONSOLE_H_   // ...则定义 _CONSOLE_H_

// 使用 #define 预处理指令定义常量宏 (Constant Macros)。
// 这些宏代表了 ANSI 转义序列中用于设置前景色的特定数值。
// 在代码中使用这些具名的宏 (如 COLOR_RED) 比直接使用数字 (如 31) 更具可读性和可维护性。

#define     COLOR_RED              31  // 红色前景
#define     COLOR_BLACK            30  // 黑色前景
#define     COLOR_GREEN            32  // 绿色前景
#define     COLOR_BLUE             34  // 蓝色前景
#define     COLOR_YELLOW           33  // 黄色前景
#define     COLOR_WHITE            37  // 白色前景
#define     COLOR_CYAN             36  // 青色前景
#define     COLOR_MAGENTA          35  // 洋红色 (品红色) 前景

/*
  颜色的中文说明 (对应上面的宏定义):
    COLOR_RED       红
    COLOR_BLACK     黑
    COLOR_GREEN     绿
    COLOR_BLUE      蓝
    COLOR_YELLOW    黄
    COLOR_WHITE     白
    COLOR_CYAN      青
    COLOR_MAGENTA   洋红

  注意: ANSI 背景颜色代码通常是对应的前景代码 + 10。
  例如，红色背景的代码是 41 (即 COLOR_RED + 10)。
  set_bg_color 函数内部会处理这个加法。
*/

// 函数声明区域 (Function Prototypes)
// 这些函数在对应的 console.c 文件中定义 (实现)。
// extern 关键字提示编译器这些函数的完整定义在别处。

// 函数声明: cusor_moveto
// 功能: 将控制台光标移动到指定的屏幕位置 (x, y)。
// 参数 x: 目标列坐标。
// 参数 y: 目标行坐标。
extern void cusor_moveto(int x, int y); // 原注释: 光标跳转到 y行 x列

// 函数声明: cusor_get_pos (或者 save_cursor_position)
// 功能: 保存当前控制台光标的位置。
extern void cusor_get_pos(void);

// 函数声明: cusor_hide
// 功能: 隐藏控制台的光标。
extern void cusor_hide(void);

// 函数声明: cusor_show
// 功能: 显示之前被隐藏的控制台光标。
extern void cusor_show(void);

// 函数声明: cusor_set_pos (或者 restore_cursor_position)
// 功能: 恢复之前由 cusor_get_pos 保存的光标位置。
extern void cusor_set_pos(void);

// 函数声明: clear_screen
// 功能: 清除整个控制台屏幕的内容。
extern void clear_screen(void);

// 函数声明: set_fg_color (set foreground color)
// 功能: 设置后续控制台输出文本的前景颜色 (即文字本身的颜色)。
// 参数 color: 颜色代码 (应使用上面定义的 COLOR_XXX 宏之一)。
extern void set_fg_color(int color); // 原注释: 设置字体前景色

// 函数声明: set_bg_color (set background color)
// 功能: 设置后续控制台输出文本的背景颜色。
// 参数 color: 代表前景色的颜色代码 (应使用上面定义的 COLOR_XXX 宏之一)。
//             函数内部会通过 color+10 来得到实际的背景色代码。
extern void set_bg_color(int color); // 原注释: 设置字体背景色

#endif	//_CONSOLE_H_ // 结束 #ifndef _CONSOLE_H_ 条件编译块。


